/*
 * m328pSerie.h
 *
 * Created: 05-12-2011 15:45:10
 *  Author: Vitor Veiga
 */ 


#ifndef M328PSERIE_H_
#define M328PSERIE_H_

#include <avr/io.h>
#include <stdlib.h>
#include <stdbool.h>

#define B9600	103
#define B14400	68
#define	B19200	51
#define	B28800	34
#define	B38400	25
#define	B57600	16

#define CMD_MAX_LENGTH 20

#if DEBUG
	char SERIAL_BUFFER[10];
#endif



/************************************************************************/
/* Serial Communication for atmega328p - 8bit, No parity and 1 stop-bit	*/
/************************************************************************/
void m328pSerialConfig (uint8_t);





/************************************************************************/
/* Send a Char thought serial communication								*/
/************************************************************************/
void m328pSendChar(char);





/************************************************************************/
/* Send String thought serial communication                             */
/************************************************************************/
void m328pSendString(char*);





/************************************************************************/
/* Read Char of serial Buffer                                           */
/************************************************************************/
char m328pReceiveChar(void);





/************************************************************************/
/* Check if there is any char to read                                   */
/************************************************************************/
_Bool m328pIsCharAvailable(void);





/************************************************************************/
/* Get an Input Command by User                                         */
/************************************************************************/
extern char* m328pGetSerialCommand(void);




#endif /* M328PSERIE_H_ */